#pragma once

#include "BezierCurve.h"

class EDITORLOGIC_API CAnimationDiagram
{
public:
	CAnimationDiagram(const std::string& name = "NoName");

	~CAnimationDiagram(void);

	typedef std::vector<CBezierCurve> BezierContainer;
	typedef std::vector<CBezierCurve>::iterator BezierContainerIterator;
	typedef std::vector<CBezierCurve>::const_iterator BezierContainerConstIterator;
	template class EDITORLOGIC_API std::allocator<CBezierCurve>;
	template class EDITORLOGIC_API std::vector<CBezierCurve>;

	inline BOOL      IsValid() const { return m_bValid; }

	inline VOID      Activate();      

	inline VOID      SetName(const std::string& name) { m_strName = name; }

	BOOL             AddBezier(const CBezierCurve& bezier);

	BOOL             Draw() const;

private:
	BOOL             m_bValid;
	std::string      m_strName;
	BezierContainer  m_vBeziers;
};
